کنترل ورودی با یک نگهبان
این برنامه یک رشته اعداد صحیح مثبت را تا زمانی که صفر وارد شود ، خوانده و معدل آنها را محاسبه میکند :
int main()
{ int n , count=0 , sum=0 ;
cout << " enter positive integers ( 0 to quit ) : " << endl ;
for ( ; ; ) // " forever "
{ cout << " \ t " << cout + 1 << " : " ;
cin >> n ;
if ( n <= 0 ) break ;
++ count ;
sum += n ;
}
cout << " the average of those " << count << " positive number is : " <<
float ( sum ) / count << endl ;
}
خروجی برنامهی بالا بصورت زیر است :
enter positive integers :
1 : 4
2 : 7
3 : 1
4 : 5
5 : 2
6 : 0
the average of those 5 positive numbers is 3.5
در برنامهی بالا وقتی که 0 وارد شود ، دستور break اجرا شده و حلقه فوراٌ خاتمه مییابد و اجرای برنامه به اولین دستور بعد از حلقه پرش میکند . به نحوهی نوشتن دستور for در این برنامه دقت کنید . هر سه بخش کنترلی در این حلقه ، خالی است : ( ; ; )for . این ترکیب به معنای بیانتهایی است . یعنی بدون دستور break این حلقه یک حلقهی نامتناهی میشود .
وقتی دستور break درون حلقههای تودرتو استفاده شود ، فقط روی حلقهای که مستقیماٌ درون آن قرار گرفته تأثیر میگذارد . حلقههای بیرونی بدون هیچ تغییری ادامه مییابند .